]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
MessageTray: only create icon buttons if specifically requested
authorJonathan Matthew <jonathan@d14n.org>
Sat, 30 Oct 2010 06:29:21 +0000 (16:29 +1000)
committerJonathan Matthew <jonathan@d14n.org>
Tue, 2 Nov 2010 09:17:29 +0000 (19:17 +1000)
Action names sometimes unintentionally overlap with icon names, so
we should only create icon buttons if the message tray source requests
it.  For the notification daemon, this is done by setting the
'action-icons' hint on the notification.

The previous notification server capability used to advertise this
feature, "x-gnome-icon-buttons", has been removed in favour of the
new capability described in the notification spec, "action-icons".

https://bugzilla.gnome.org/show_bug.cgi?id=624584

js/ui/messageTray.js
js/ui/notificationDaemon.js

index 7ab1b76d2a8ba89a3eddeefff450c72a6fa0ece2..d11051943b356d86f566df607c93e8f9fe666357 100644 (file)
@@ -102,6 +102,7 @@ Notification.prototype = {
         this.source = source;
         this.urgent = false;
         this.expanded = false;
+        this._useActionIcons = false;
         this._customContent = false;
         this._bannerBodyText = null;
         this._titleFitsInBannerMode = true;
@@ -346,7 +347,7 @@ Notification.prototype = {
 
         let button = new St.Button();
 
-        if (Gtk.IconTheme.get_default().has_icon(id)) {
+        if (this._useActionIcons && Gtk.IconTheme.get_default().has_icon(id)) {
             button.add_style_class_name('notification-icon-button');
             button.child = St.TextureCache.get_default().load_icon_name(id, St.IconType.SYMBOLIC, BUTTON_ICON_SIZE);
         } else {
@@ -363,6 +364,10 @@ Notification.prototype = {
         this.urgent = urgent;
     },
 
+    setUseActionIcons: function(useIcons) {
+        this._useActionIcons = useIcons;
+    },
+
     _styleChanged: function() {
         this._spacing = this.actor.get_theme_node().get_length('spacing-columns');
     },
index 88fbc00e041a02f031fd5cdc01b726911c499ae4..5bebb170d78cf6f3b0483e51ac180ece2ef6c46d 100644 (file)
@@ -294,6 +294,7 @@ NotificationDaemon.prototype = {
         }
 
         if (actions.length) {
+            notification.setUseActionIcons(hints['action-icons'] == true);
             for (let i = 0; i < actions.length - 1; i += 2)
                 notification.addButton(actions[i], actions[i + 1]);
         }
@@ -317,6 +318,7 @@ NotificationDaemon.prototype = {
     GetCapabilities: function() {
         return [
             'actions',
+            'action-icons',
             'body',
             // 'body-hyperlinks',
             // 'body-images',
@@ -325,7 +327,6 @@ NotificationDaemon.prototype = {
             'icon-static',
             'persistence',
             // 'sound',
-            'x-gnome-icon-buttons'
         ];
     },